﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Filmy.Kontroler
{
    class Filmweb : ZewnetrznaBaza
    {

        //pobranie linku do strony z filmem za posrednictwem wyszukiwarki filmwebu
        private string dajLink(string cache)
        {
            string zrodlo;
            int wskaznik;
            string text = "<h3><a class=searchResultTitle href=\"";
            wskaznik = cache.IndexOf(text) + text.Length;
            zrodlo = cache.Substring(wskaznik);
            zrodlo = zrodlo.Remove(zrodlo.IndexOf("\""));
            return "http://www.filmweb.pl" + zrodlo;
        }

        //pobranie duzego obrazka ze strony filmwebu
        public string dajDuzyObrazek(string tytul)
        {
            try
            {
                string zrodlo = "", link = "", adres = "";
                zrodlo = dajZrodlo("http://www.filmweb.pl/search?q=" + tytul.Replace(" ", "+"));
                link = dajLink(zrodlo);
                zrodlo = dajZrodlo(link);
                adres = PobierzPlik(wyszukaj(ref zrodlo, "<a rel=\"v:image\" href=\"", "?"), tytul);
                return adres;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        //pobranie danych ze strony z filmem
        public void filmweb(string DoZnalezienia, bool poLinku)
        {
            if (DoZnalezienia != "" || poLinku)
            {
                string cache, zrodlo;
                int wskaznik;
                if (!poLinku)
                {
                    cache = dajZrodlo("http://www.filmweb.pl/search?q=" + DoZnalezienia.Replace(" ", "+"));
                    link = dajLink(cache);
                }
                else
                {
                    link = DoZnalezienia;
                }
                cache = dajZrodlo(link);
                zrodlo = cache;
                tytul = regx(zrodlo, "icoBig[a-zA-Z]{1,9}\"></span>([^<]+)</a>").Replace("&quot;", "");
                if (poLinku)
                {
                    DoZnalezienia = tytul;
                }
                if (tytul.Length > 0)
                {
                    rokProdukcji = wyszukaj(ref zrodlo, "class=filmYear>", "<").Replace("&quot;", "");
                    if (rokProdukcji.Length > 6)
                        rokProdukcji = "";
                    wskaznik = zrodlo.IndexOf("</h2>");
                    if (wskaznik > 11 && wskaznik < 30)
                    {
                        tytulOryginalny = wyszukaj(ref zrodlo, "</span>", "<").Replace("&quot;", "");
                    }
                    else
                    {
                        tytulOryginalny = tytul;
                    }
                    DoZnalezienia = DoZnalezienia.Replace(":", "");
                    DoZnalezienia = DoZnalezienia.Replace(";", "");
                    DoZnalezienia = DoZnalezienia.Replace(",", "");
                    DoZnalezienia = DoZnalezienia.Replace(".", "");
                    obrazek = PobierzPlik(wyszukaj(ref zrodlo, "mini><img src=\"", "?"), DoZnalezienia).Replace("&quot;", "");
                    if (obrazek != "")
                    {
                        opcjaWyswietlania = PictureBoxSizeMode.StretchImage;
                    }
                    else
                    {
                        obrazek = "BrakObrazka.png";
                        opcjaWyswietlania = PictureBoxSizeMode.Zoom;
                    }
                    ocena = wyszukaj(ref zrodlo, "property=\"v:average\">", "<").Replace(".", ",").Replace("&quot;", "");
                    if (ocena.Length > 4)
                        ocena = "";
                    rezyserowie = WyszukajWiele(ref zrodlo, "rel=\"v:directedBy\"", ">").Replace("&quot;", "");
                    krajePochodzenia = WyszukajWiele(ref zrodlo, "search/film?countryIds=", ">").Replace("&quot;", "");
                    gatunki = WyszukajWiele(ref zrodlo, "href=\"/search/film?genreIds=", ">").Replace("&quot;", "");
                    if (gatunki.Length > 50)
                        gatunki = "";
                    czasTrwania = wyszukaj(ref zrodlo, "<div class=time>", "<").Replace("&quot;", "");
                    if (czasTrwania.Length > 5 || czasTrwania == "n>")
                        czasTrwania = "";
                    opis = wyszukaj(ref zrodlo, "filmDescrBg property=\"v:summary\">", "</").Replace("&quot;", "").Replace("<span>", "");
                    if (opis.Length < 20)
                        opis = "";
                }
                else
                {
                    throw new Exception("Wygenerowanie nie było niemożliwe");
                }
            }
            else
            {
                tytul = "";
                throw new Exception("Wygenerowanie nie było niemożliwe");
            }
        }
    }
}
